home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 24 / AMIGAplus Sonderheft 24 (2000)(Falke)(DE)[!].iso / PublicDomain / Anwendungen / MT-RechnungIII / Rexx / FWRechÜbZus_NW1.inbrexx < prev    next >
Text File  |  1998-11-17  |  10KB  |  404 lines

  1. /*
  2. ** Druck-, Vorschau, Sichern der Rechnungsübersicht Netto Währung1 mit Hilfe von FinalWriter
  3. ** $VER: FWRechÜbZus_NW1.inbrexx V1.00 (17.11.98)
  4. */
  5.  
  6. PARSE ARG ARexxPort;
  7.  
  8. ADDRESS VALUE ARexxPort;
  9. OPTIONS RESULTS;
  10.  
  11. FWVorlage    = "FWDokumente/ERechÜbersicht_Netto.fw";
  12. FWDokument    = "t:ERechÜbersicht_Netto.fw";
  13. FWPort        = "FINALW."
  14.  
  15. LF                = '0a'x;                            /* Zeilenvorschub                */
  16.  
  17. Gefunden = 0;
  18. DO i = 1 TO 20 WHILE(Gefunden = 0)
  19.     IF show(ports, (FWPort || i)) THEN
  20.         DO;
  21.             Gefunden = 1;
  22.             FWPort     = FWPort || i;
  23.         END;
  24. END;
  25.  
  26. IF Gefunden = 0 THEN
  27.     DO;
  28.         ES_TITLE                = "Warnung";
  29.         ES_TEXTFORMAT        = "FinalWriter ist nicht aktiv, bitte starten sie dieses" || LF || "und versuchen Sie es erneut";
  30.         ES_GADGETFORMAT    = "Abbrechen";
  31.         EASY_REQUEST;
  32.         EXIT;
  33.     END;
  34.  
  35. /* Original FW-Dokument nach t: kopieren, um ein versehentliches überschreiben */
  36. /* dieser Vorlage zu verhindern */
  37. GET_REXXPATH;
  38. FWVorlage        = MTR_RESULT || FWVorlage;
  39. ADDRESS COMMAND "copy" FWVorlage FWDokument;
  40.  
  41. /* Oberfläche sperren */
  42. LOCKGUI;
  43.  
  44. /* Art ermitteln: 0 = Drucken, 1 = Vorschau, 2 = Speichern */
  45. PRINTSTATE;
  46. Druckart = MTR_RESULT;
  47.  
  48. Ende_Kennzeichen = 'N';
  49.  
  50. /* Suchen der zu druckenden Daten */
  51. GET_PREFS;
  52. PRINTFIND;
  53.  
  54. DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N');
  55.     ADDRESS VALUE FWPort;
  56.     SCREENTOFRONT;
  57.  
  58.     CALL DatenAufbereiten;
  59.     SELECT;
  60.         WHEN Druckart = 0 THEN    /* Drucken    */
  61.             DO;
  62.                 ADDRESS VALUE FWPort;
  63.                 PRINT;
  64.                 ADDRESS VALUE ARexxPort;
  65.                 MTSCREENTOFRONT;
  66.             END;
  67.         WHEN Druckart = 1 THEN    /* Vorschau    */
  68.             ADDRESS VALUE ARexxPort;
  69.         WHEN Druckart = 2 THEN    /* Sichern    */
  70.             DO;
  71.                 ADDRESS VALUE FWPort;
  72.                 SAVEAS;
  73.                 ADDRESS VALUE ARexxPort;
  74.                 MTSCREENTOFRONT;
  75.             END;
  76.         OTHERWISE
  77.             DO;
  78.                 ES_TITLE                = "Warnung";
  79.                 ES_TEXTFORMAT        = "Druckart wird nicht unterstützt!";
  80.                 ES_GADGETFORMAT    = "Ok";
  81.                 EASY_REQUEST;
  82.                 Ende_Kennzeichen    = 'J';
  83.             END;
  84.     END;
  85.  
  86.     PRINTFIND;
  87. END;
  88.  
  89. /* WordWorth-Datei aus t: wieder entfernen */
  90. ADDRESS COMMAND "delete" FWDokument;
  91.  
  92. /* Oberfläche wieder entsperren */
  93. ADDRESS VALUE ARexxPort;
  94. FREEGUI;
  95.  
  96. EXIT;
  97.  
  98. DatenAufbereiten:
  99.  
  100.     w            = 0;
  101.     wm            = 0;
  102.  
  103.     Gesamtsumme.0    = 0;
  104.     Gesamtsumme.1    = 0;
  105.     MWStSumme.0.0    = 0;
  106.     MWStSumme.0.1    = 0;
  107.     MWStSumme.1.0    = 0;
  108.     MWStSumme.1.1    = 0;
  109.     MWStSumme.2.0    = 0;
  110.     MWStSumme.2.1    = 0;
  111.     MWStSumme.3.0    = 0;
  112.     MWStSumme.3.1    = 0;
  113.     MWStSumme.4.0    = 0;
  114.     MWStSumme.4.1    = 0;
  115.     MWStSumme.5.0    = 0;
  116.     MWStSumme.5.1    = 0;
  117.     MWStSumme.6.0    = 0;
  118.     MWStSumme.6.1    = 0;
  119.     MWStSumme.7.0    = 0;
  120.     MWStSumme.7.1    = 0;
  121.     MWStSumme.8.0    = 0;
  122.     MWStSumme.8.1    = 0;
  123.     MWStSumme.9.0    = 0;
  124.     MWStSumme.9.1    = 0;
  125.     MWStSatz.0        = 0;
  126.     MWStSatz.1        = 0;
  127.     MWStSatz.2        = 0;
  128.     MWStSatz.3        = 0;
  129.     MWStSatz.4        = 0;
  130.     MWStSatz.5        = 0;
  131.     MWStSatz.6        = 0;
  132.     MWStSatz.7        = 0;
  133.     MWStSatz.8        = 0;
  134.     MWStSatz.9        = 0;
  135.  
  136.     ADDRESS VALUE FWPort;
  137.     CLEARDOC;
  138.     OPEN FWDokument;
  139.  
  140.     FIND "<NR>";
  141.     FINDNEXT;
  142.  
  143.     DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N');
  144.         ADDRESS VALUE ARexxPort;
  145.         IF IB.BILL_NUMBER    > "" THEN
  146.             ZW_Nummer            = LEFT(IB.BILL_NUMBER, 20);
  147.         ELSE
  148.             DO;
  149.                 IF PREFS.NUMBER_DIGITS > 0 THEN
  150.                     ZW_Nummer    = LEFT(RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || MTR_RESULT), PREFS.NUMBER_DIGITS ), 20);
  151.                 ELSE
  152.                     ZW_Nummer    = LEFT(MTR_RESULT, 20);
  153.             END;
  154.  
  155.         FORMAT_DATE_LONG IB.DATE_PAYED;
  156.         ZW_Datum                    = LEFT(MTR_RESULT, 35);
  157.  
  158.         IF PREFS.NUMBER_DIGITS > 0 THEN
  159.             ZW_Lieferant        = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || IB.INVOICEE_NUMBER), PREFS.NUMBER_DIGITS );
  160.         ELSE
  161.             ZW_Lieferant        = IB.INVOICEE_NUMBER;
  162.  
  163.         IF PREFS.NUMBER_DIGITS > 0 THEN
  164.             ZW_Besteller        = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || IB.ORDERER_NUMBER), PREFS.NUMBER_DIGITS );
  165.         ELSE
  166.             ZW_Besteller        = IB.ORDERER_NUMBER;
  167.  
  168.  
  169.         ADDRESS VALUE FWPort;
  170.         TYPE (ZW_Nummer || "            " || ZW_Datum || "    " || ZW_Lieferant || "    " || ZW_Besteller);
  171.         NEWPARAGRAPH;
  172.  
  173.         DO i = 1 to IB.COUNT_ARTICLE;
  174.             ADDRESS VALUE ARexxPort;
  175.  
  176.             FORMAT_NUMBER IB.i.POS_QUANTITY PREFS.FRAC_DIGITS;
  177.             ZW_Anzahl        = MTR_RESULT;
  178.  
  179.             NAME_OF_QUANTITY_UNIT IB.i.ARTICLE.QUANTITY_UNIT;
  180.             ZW_Einheit        = MTR_RESULT;
  181.  
  182.             j = IB.i.POS_VALUE;
  183.             FORMAT_NUMBER IB.VALUE_PERCENT.j PREFS.FRAC_DIGITS_PERCENT;
  184.             ZW_MWSt            = RIGHT(MTR_RESULT, 10);
  185.  
  186.             IF w < 2 THEN
  187.                 FORMAT_MONEY1 IB.i.POS_SINGLE_PRICE.w;
  188.             ELSE
  189.                 FORMAT_MONEY2 IB.i.POS_SINGLE_PRICE.w;
  190.             ZW_EinzelPreis    = MTR_RESULT;
  191.         
  192.             ADDRESS VALUE FWPort;
  193.             TYPE ("    " || IB.i.POS_ARTICLE_NUMBER_FORMATED || "    " || ZW_Anzahl || "    " || ZW_Einheit || "    " || ZW_MWSt || "    " || ZW_EinzelPreis);
  194.  
  195.             DO i2 = 0 TO 2;
  196.                 IF IB.i.POS_ADD_RED_USED.i2 > 0 THEN
  197.                     DO;
  198.                         ADDRESS VALUE ARexxPort;
  199.  
  200.                         j2 = IB.i.POS_ADD_RED_USED.i2 - 1;
  201.                         IF IB.i.POS_ADD_RED_TYPE.i2 = 0 | IB.i.POS_ADD_RED_TYPE.i2 = 5 THEN
  202.                             DO;
  203.                                 FORMAT_NUMBER IB.i.POS_ADD_RED_VALUE.i2.w PREFS.FRAC_DIGITS_PERCENT;
  204.                             END;
  205.                         ELSE
  206.                             DO;
  207.                                 IF w < 2 THEN
  208.                                     FORMAT_MONEY1 IB.i.POS_ADD_RED_VALUE.i2.w;
  209.                                 ELSE
  210.                                     FORMAT_MONEY2 IB.i.POS_ADD_RED_VALUE.i2.w;
  211.                             END;
  212.                         ZW_EinzelPreis    = RIGHT(MTR_RESULT, 15);
  213.  
  214.                         IF w < 2 THEN
  215.                             FORMAT_MONEY1 IB.i.POS_ADD_RED_VALUE_POS.i2.w;
  216.                         ELSE
  217.                             FORMAT_MONEY2 IB.i.POS_ADD_RED_VALUE_POS.i2.w;
  218.                         ZW_PosPreis        = RIGHT(MTR_RESULT, 18);
  219.  
  220.                         ADDRESS VALUE FWPort;
  221.                         NEWPARAGRAPH;
  222.                         TYPE "              " || PREFS.ADD_RED_TEXT.j2 || "            " || ZW_EinzelPreis || "    " || ZW_PosPreis;
  223.                     END;
  224.             END;
  225.  
  226.  
  227.             ADDRESS VALUE ARexxPort;
  228.             IF w < 2 THEN
  229.                 FORMAT_MONEY1 IB.i.POS_SUM_M_ALL.w;
  230.             ELSE
  231.                 FORMAT_MONEY2 IB.i.POS_SUM_M_ALL.w;
  232.             ZW_PosPreis        = MTR_RESULT;
  233.  
  234.             ADDRESS VALUE FWPort;
  235.             TYPE "    " || ZW_PosPreis;
  236.             NEWPARAGRAPH;
  237.  
  238.         END;
  239.  
  240.         DO i = 0 to 2;
  241.             IF IB.ADD_RED_USED.i > 0 THEN
  242.                 DO;
  243.                     ADDRESS VALUE ARexxPort;
  244.                     j2 = IB.ADD_RED_USED.i - 1;
  245.                     IF IB.ADD_RED_TYPE.i = 0 | IB.ADD_RED_TYPE.i = 5 THEN
  246.                         DO;
  247.                             FORMAT_NUMBER IB.ADD_RED_VALUE.i.w PREFS.FRAC_DIGITS_PERCENT;
  248.                         END;
  249.                     ELSE
  250.                         DO;
  251.                             IF w < 2 THEN
  252.                                 FORMAT_MONEY1 IB.ADD_RED_VALUE.i.w;
  253.                             ELSE
  254.                                 FORMAT_MONEY2 IB.ADD_RED_VALUE.i.w;
  255.                         END;
  256.                     ZW_EinzelPreis    = RIGHT(MTR_RESULT, 16);
  257.  
  258.                     IF w < 2 THEN
  259.                         FORMAT_MONEY1 IB.ADD_RED_VALUE_POS.i.w;
  260.                     ELSE
  261.                         FORMAT_MONEY2 IB.ADD_RED_VALUE_POS.i.w;
  262.                     ZW_PosPreis        = RIGHT(MTR_RESULT, 16);
  263.  
  264.                     ADDRESS VALUE FWPort;
  265.                     TYPE "    " || PREFS.ADD_RED_TEXT.j2 || "                " || ZW_EinzelPreis || "    " || ZW_PosPreis;
  266.                     NEWPARAGRAPH;
  267.                 END;
  268.         END;
  269.  
  270.         IF IB.DISCOUNT.w > 0 THEN
  271.             DO;
  272.                 ADDRESS VALUE ARexxPort;
  273.                 FORMAT_NUMBER IB.DISCOUNT_PERCENT PREFS.FRAC_DIGITS_PERCENT;
  274.                 ZW_Prozent    = MTR_RESULT;
  275.  
  276.                 IF w < 2 THEN
  277.                     FORMAT_MONEY1 IB.DISCOUNT.w;
  278.                 ELSE
  279.                     FORMAT_MONEY2 IB.DISCOUNT.w;
  280.                 ZW_Betrag    = MTR_RESULT;
  281.  
  282.                 ADDRESS VALUE FWPort;
  283.                 TYPE ("    abzüglich Skonto " || ZW_Prozent || " %:            " ZW_Betrag);
  284.                 NEWPARAGRAPH;
  285.             END;
  286.  
  287.         IF IB.DISPATCH_COSTS.w > 0 THEN
  288.             DO;
  289.                 ADDRESS VALUE ARexxPort;
  290.                 IF w < 2 THEN
  291.                     FORMAT_MONEY1 IB.DISPATCH_COSTS.w;
  292.                 ELSE
  293.                     FORMAT_MONEY2 IB.DISPATCH_COSTS.w;
  294.                 ZW_Betrag    = MTR_RESULT;
  295.  
  296.                 ADDRESS VALUE FWPort;
  297.                 TYPE ("    Versandkosten:                    " ZW_Betrag);
  298.                 NEWPARAGRAPH;
  299.             END;
  300.  
  301.         ADDRESS VALUE ARexxPort;
  302.         IF w < 2 THEN
  303.             FORMAT_MONEY1 IB.TOTAL_M_ALL_CH.w;
  304.         ELSE
  305.             FORMAT_MONEY2 IB.TOTAL_M_ALL_CH.w;
  306.         ZW_Betrag    = MTR_RESULT;
  307.  
  308.         ADDRESS VALUE FWPort;
  309.         TYPE ("    Rechnungsendbetrag:                    " ZW_Betrag);
  310.         NEWPARAGRAPH;
  311.  
  312.         IF IB.DISPATCH_ADDITION_COSTS.w > 0 THEN
  313.             DO;
  314.                 ADDRESS VALUE ARexxPort;
  315.                 IF w < 2 THEN
  316.                     FORMAT_MONEY1 IB.DISPATCH_ADDITION_COSTS.w;
  317.                 ELSE
  318.                     FORMAT_MONEY2 IB.DISPATCH_ADDITION_COSTS.w;
  319.                 ZW_Betrag    = MTR_RESULT;
  320.  
  321.                 ADDRESS VALUE FWPort;
  322.                 TYPE ("    Versandzusatzkosten:                        " ZW_Betrag);
  323.                 NEWPARAGRAPH;
  324.             END;
  325.  
  326.         IF w < 2 THEN
  327.             DO;
  328.                 Gesamtsumme.0    = Gesamtsumme.0 + IB.TOTAL_ADD_M_ALL_CH.0;
  329.                 Gesamtsumme.1    = Gesamtsumme.1 + IB.TOTAL_ADD_M_ALL_CH.1;
  330.                 DO i = 0 TO 9;
  331.                     MWStSatz.i    = IB.VALUE_PERCENT.i
  332.                     MWStSumme.i.0    = MWStSumme.i.0 + IB.SUM_ADD_PER_VALUE_M_ALL_CH.i.0;
  333.                     MWStSumme.i.1    = MWStSumme.i.1 + IB.SUM_ADD_PER_VALUE_M_ALL_CH.i.1;
  334.                 END;
  335.             END;
  336.         ELSE
  337.             DO;
  338.                 Gesamtsumme.0    = Gesamtsumme.0 + IB.TOTAL_ADD_M_ALL_CH.2;
  339.                 Gesamtsumme.1    = Gesamtsumme.1 + IB.TOTAL_ADD_M_ALL_CH.3;
  340.                 DO i = 0 TO 9;
  341.                     MWStSatz.i    = IB.VALUE_PERCENT.i
  342.                     MWStSumme.i.0    = MWStSumme.i.0 + IB.SUM_ADD_PER_VAL